Data Annotations এবং Validation

Web Development - এএসপি ডট (ASP.Net) - মডেলস এবং ডাটাবাইন্ডিং |

Data Annotations হলো একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ASP.Net মডেল ক্লাসগুলির মধ্যে ডেটা ভ্যালিডেশন এবং ফর্ম্যাটিং পরিচালনা করতে ব্যবহৃত হয়। এটি মূলত সিএসএস (C#) ক্লাসের প্রোপার্টির উপর বিভিন্ন বৈশিষ্ট্য যোগ করতে সাহায্য করে, যা ডেটা ভ্যালিডেশন এবং ডেটা ফরম্যাটিংয়ের জন্য কাজ করে। ASP.Net Core এবং ASP.Net MVC এ এই টেকনিক্যাল ফিচারটি বিশেষভাবে ব্যবহৃত হয়।

Data Annotations কী?

Data Annotations হলো C# এর ক্লাস প্রোপার্টিতে বিভিন্ন বৈশিষ্ট্য নির্ধারণের জন্য ব্যবহৃত অ্যাট্রিবিউট (Attributes)। এগুলি মডেল বা ক্লাসের বৈধতা পরীক্ষা করতে, ডেটার ফরম্যাট নিশ্চিত করতে, এবং ইন্টারফেসে প্রেরিত ডেটার জন্য কিছু বিধিনিষেধ বা সীমাবদ্ধতা সেট করতে ব্যবহৃত হয়।

Data Annotations ব্যবহার করার মাধ্যমে আপনি ভ্যালিডেশন নিয়মগুলো সরাসরি মডেল ক্লাসে সংজ্ঞায়িত করতে পারেন, যেটি অটোমেটিক্যালি ফর্ম সাবমিশন, API কনট্রোলার বা MVC অ্যাপ্লিকেশনের মাধ্যমে পরিচালিত হবে।


Data Annotations এর সাধারণ অ্যাট্রিবিউট

ASP.Net এ Data Annotations এর কয়েকটি সাধারণ অ্যাট্রিবিউট ব্যবহার করা হয়:

১. [Required]

  • [Required] অ্যাট্রিবিউট ব্যবহার করা হয় একটি প্রোপার্টি বা ফিল্ডকে বাধ্যতামূলক করার জন্য। অর্থাৎ, এটি ফিল্ডটি খালি থাকতে পারবে না।

    public class UserModel
    {
        [Required(ErrorMessage = "Name is required")]
        public string Name { get; set; }
    }
    

২. [StringLength]

  • [StringLength] অ্যাট্রিবিউট ব্যবহার করা হয় একটি স্ট্রিং ফিল্ডের সর্বাধিক এবং ন্যূনতম দৈর্ঘ্য নির্ধারণের জন্য।

    public class UserModel
    {
        [StringLength(100, MinimumLength = 5, ErrorMessage = "Username should be between 5 and 100 characters.")]
        public string Username { get; set; }
    }
    

৩. [Range]

  • [Range] অ্যাট্রিবিউট ব্যবহার করা হয় একটি সংখ্যার নির্দিষ্ট পরিসরের মধ্যে থাকতে বাধ্য করার জন্য।

    public class ProductModel
    {
        [Range(1, 1000, ErrorMessage = "Price must be between 1 and 1000")]
        public decimal Price { get; set; }
    }
    

৪. [EmailAddress]

  • [EmailAddress] অ্যাট্রিবিউট ব্যবহার করা হয় একটি স্ট্রিং ফিল্ডের মাধ্যমে ইমেইল অ্যাড্রেস ভ্যালিডেট করার জন্য।

    public class UserModel
    {
        [EmailAddress(ErrorMessage = "Please enter a valid email address")]
        public string Email { get; set; }
    }
    

৫. [Compare]

  • [Compare] অ্যাট্রিবিউট দুটি প্রোপার্টির মান তুলনা করতে ব্যবহার করা হয়। এটি সাধারণত পাসওয়ার্ড ফিল্ডের ক্ষেত্রে ব্যবহৃত হয়।

    public class UserModel
    {
        public string Password { get; set; }
    
        [Compare("Password", ErrorMessage = "Password and confirmation password do not match.")]
        public string ConfirmPassword { get; set; }
    }
    

৬. [DataType]

  • [DataType] অ্যাট্রিবিউট একটি প্রোপার্টির জন্য নির্দিষ্ট ডেটা ধরনের নির্দেশনা দেয়, যেমন ফোন নম্বর, ডেট, অথবা পাসওয়ার্ড।

    public class UserModel
    {
        [DataType(DataType.PhoneNumber)]
        public string PhoneNumber { get; set; }
    }
    

৭. [RegularExpression]

  • [RegularExpression] অ্যাট্রিবিউট ব্যবহার করা হয় একটি নির্দিষ্ট রেগুলার এক্সপ্রেশন অনুযায়ী ডেটার ফরম্যাট চেক করার জন্য।

    public class UserModel
    {
        [RegularExpression(@"^\d{10}$", ErrorMessage = "Phone number must be 10 digits.")]
        public string PhoneNumber { get; set; }
    }
    

Validation কী?

Validation হলো ডেটার সঠিকতা নিশ্চিত করার প্রক্রিয়া। ASP.Net MVC বা Core অ্যাপ্লিকেশনে, Data Annotations সাধারণত ভ্যালিডেশন প্রয়োগের জন্য ব্যবহৃত হয়। এটি নিশ্চিত করে যে ব্যবহারকারী প্রদত্ত ডেটা সঠিক এবং প্রত্যাশিত নিয়ম অনুসরণ করছে।

ভ্যালিডেশন সাধারণত Client-Side Validation এবং Server-Side Validation এ বিভক্ত করা যায়।

১. Client-Side Validation

  • ক্লায়েন্ট-সাইড ভ্যালিডেশন ব্রাউজারে চলে এবং ব্যবহারকারীর ইনপুটের পূর্বে ত্রুটি দেখায়, যেমন ফর্ম জমা দেওয়ার আগেই ফিল্ডটি খালি না হওয়া বা ভুল ফরম্যাটের ইনপুট দেওয়া হচ্ছে কিনা।
  • এটি JavaScript বা jQuery এর মাধ্যমে করা হয়, এবং Data Annotations স্বয়ংক্রিয়ভাবে ক্লায়েন্ট সাইড ভ্যালিডেশনও জেনারেট করে।

২. Server-Side Validation

  • সার্ভার-সাইড ভ্যালিডেশন তখন কাজ করে যখন ফর্মটি সাবমিট করা হয়। এটি নিশ্চিত করে যে ইনপুট ডেটা সার্ভারের কাছে প্রাপ্ত এবং সঠিকভাবে যাচাই করা হয়েছে।
  • ASP.Net MVC বা Core এ, server-side validation ModelState.IsValid মেথড দিয়ে পরীক্ষা করা হয়:

    if (ModelState.IsValid)
    {
        // Valid data, process the request
    }
    else
    {
        // Invalid data, show error messages
    }
    

Model Validation Example

এখানে একটি সাধারণ উদাহরণ দেওয়া হলো, যেখানে একটি UserModel ক্লাস ব্যবহার করে ভ্যালিডেশন করা হয়েছে:

public class UserModel
{
    [Required(ErrorMessage = "Name is required")]
    [StringLength(50, MinimumLength = 3, ErrorMessage = "Name must be between 3 and 50 characters.")]
    public string Name { get; set; }

    [EmailAddress(ErrorMessage = "Please enter a valid email address")]
    public string Email { get; set; }

    [Required(ErrorMessage = "Password is required")]
    [StringLength(100, MinimumLength = 6, ErrorMessage = "Password must be at least 6 characters long.")]
    public string Password { get; set; }
}

এবং অ্যাকশন মেথডে, ModelState.IsValid চেক করে ইনপুট ডেটার বৈধতা পরীক্ষা করা হয়:

[HttpPost]
public IActionResult Register(UserModel userModel)
{
    if (ModelState.IsValid)
    {
        // Process registration
    }
    else
    {
        // Return view with validation errors
        return View(userModel);
    }
}

সারাংশ

Data Annotations ASP.Net এ ডেটা ভ্যালিডেশন এবং ফরম্যাটিংয়ের জন্য একটি সহজ এবং শক্তিশালী টুল। এটি মডেল ক্লাসের প্রোপার্টিতে বিভিন্ন ভ্যালিডেশন রুল অ্যাপ্লাই করতে সাহায্য করে, যেমন Required, StringLength, Range, এবং EmailAddress। Data Annotations এর মাধ্যমে আপনি সহজে Client-Side এবং Server-Side ভ্যালিডেশন পরিচালনা করতে পারেন, যা ASP.Net অ্যাপ্লিকেশনকে আরও শক্তিশালী এবং নিরাপদ করে তোলে।

Content added By
Promotion